package com.yuetong.business.mapper;

import java.util.List;
import com.yuetong.business.domain.YtPlaceInfo;
import com.yuetong.business.domain.YtElevatorInfo;

/**
 * 场所信息，用于存储各个场所的基本信息及其层级关系Mapper接口
 *
 * @author  卓晓君
 * @date 2025-03-13
 */
public interface YtPlaceInfoMapper
{
    /**
     * 查询场所信息，用于存储各个场所的基本信息及其层级关系
     *
     * @param placeId 场所信息，用于存储各个场所的基本信息及其层级关系主键
     * @return 场所信息，用于存储各个场所的基本信息及其层级关系
     */
    public YtPlaceInfo selectYtPlaceInfoByPlaceId(Long placeId);

    /**
     * 查询场所信息，用于存储各个场所的基本信息及其层级关系列表
     *
     * @param ytPlaceInfo 场所信息，用于存储各个场所的基本信息及其层级关系
     * @return 场所信息，用于存储各个场所的基本信息及其层级关系集合
     */
    public List<YtPlaceInfo> selectYtPlaceInfoList(YtPlaceInfo ytPlaceInfo);

    /**
     * 新增场所信息，用于存储各个场所的基本信息及其层级关系
     *
     * @param ytPlaceInfo 场所信息，用于存储各个场所的基本信息及其层级关系
     * @return 结果
     */
    public int insertYtPlaceInfo(YtPlaceInfo ytPlaceInfo);

    /**
     * 修改场所信息，用于存储各个场所的基本信息及其层级关系
     *
     * @param ytPlaceInfo 场所信息，用于存储各个场所的基本信息及其层级关系
     * @return 结果
     */
    public int updateYtPlaceInfo(YtPlaceInfo ytPlaceInfo);

    /**
     * 删除场所信息，用于存储各个场所的基本信息及其层级关系
     *
     * @param placeId 场所信息，用于存储各个场所的基本信息及其层级关系主键
     * @return 结果
     */
    public int deleteYtPlaceInfoByPlaceId(Long placeId);

    /**
     * 批量删除场所信息，用于存储各个场所的基本信息及其层级关系
     *
     * @param placeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteYtPlaceInfoByPlaceIds(Long[] placeIds);

    /**
     * 批量删除电梯信息，用于存储电梯的基本信息及其所属场所
     *
     * @param placeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteYtElevatorInfoByPlaceIds(Long[] placeIds);

    /**
     * 批量新增电梯信息，用于存储电梯的基本信息及其所属场所
     *
     * @param ytElevatorInfoList 电梯信息，用于存储电梯的基本信息及其所属场所列表
     * @return 结果
     */
    public int batchYtElevatorInfo(List<YtElevatorInfo> ytElevatorInfoList);


    /**
     * 通过场所信息，用于存储各个场所的基本信息及其层级关系主键删除电梯信息，用于存储电梯的基本信息及其所属场所信息
     *
     * @param placeId 场所信息，用于存储各个场所的基本信息及其层级关系ID
     * @return 结果
     */
    public int deleteYtElevatorInfoByPlaceId(Long placeId);

    int selectSingnedCount(String signedStaute);
}
